package affarituoioop;

public class Pacco {

    private int pacco;
    private String regione;
    private String premio;
    private boolean visibile = true;

    public boolean setPacco(int pPacco) {
        if (pPacco > 0 && pPacco < 21) {
            this.pacco = pPacco;
            return true;
        }
        return false;
    }

    public boolean setRegione(String pRegione) {
        if (!pRegione.equals("")) {
            this.regione = pRegione;
            return true;
        }
        return false;
    }

    public boolean setPremio(String pPremio) {
        if (!pPremio.equals("")) {
            this.premio = pPremio;
            return true;
        }
        return false;
    }

    public void setVisibile(boolean pVisibile) {
        this.visibile = pVisibile;
    }

    public int getPacco() {
        return this.pacco;
    }

    public String getRegione() {
        return this.regione;
    }

    public String getPremio() {
        return this.premio;
    }

    public boolean getVisibile() {
        return this.visibile;
    }

    public void cambia(Pacco pPacco, Lista pLista) {
        int numero = pPacco.getPacco();
        Pacco cambio = new Pacco();
        cambio.pacco = this.pacco;
        cambio.premio = this.premio;
        cambio.regione = this.regione;
        cambio.visibile = this.visibile;
        if (this.pacco > numero) {
            pLista.setListaElement(this.pacco - 1, pPacco);
            pLista.setListaElement(numero - 1, cambio);
        } else {
            pLista.setListaElement(numero - 1, cambio);
            pLista.setListaElement(this.pacco - 1, pPacco);

        }
        String temppremio = pPacco.getPremio();
        pPacco.pacco = this.pacco;
        pPacco.premio = this.premio;
        this.pacco = numero;
        this.premio = temppremio;
    }

    @Override
    public boolean equals(Object t) {
        if (t instanceof Pacco) {
            Pacco tt = (Pacco) t;
            return this.pacco == tt.pacco && this.premio.equals(tt.premio) && this.regione.equals(tt.regione);
        }
        return false;
    }
}
